package com.foreveross.fetl.common.vo.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SinglePlaneInfo {
	
	private String rowkey;
	
	/**
	 * 货币单位
	 * 如：USD
	*/
	//@HBaseColumn(qualifier = "currency", family = "returnPlaneInfosInfo")
	private String currency;
	
	
	//private String id;
	
	/**
	 * 外键，对应表CRAWL_PF_SOURCE_DATA的rowkey 源网页数据rowKey
	 * 
	 */
	
	private String sourceRowkey;
	
	/**
	 * 区域码
	 */
	private String areaCode;
	/**
	 * 区域名称
	 */
	private String areaName;
	
	private Long grabChannelId;
	
	/**
	 * 去程总时长
	 */
//	@HBaseColumn(qualifier = "flightDuration", family = "planeinfo")
	private Long flightDuration;
	
	/**
	 * 中转   0 没有中转  ，1 中转一次，2中转2次 ， 3...
	 */
	private Integer trainsType;
	
	/**
	 * 中转机场
	 */
	private String trainsAirport;
	
	/**
	 * 中转时间
	 */
	private String trainTime;
	

//	private String totalTime;
	
	/**
	 * 起飞时间 0935    
	 */
	private String departureTime;
	
	
	/**
	 * 航班批次日期。如:2012-05-19,格式:yyyy-MM-dd
	 */
	private String flightDate;
	
	/**
	 * 经停  0没有经停 ，1经停一次 ，2经停2次，3...
	 */
	private Integer stopOversType;
	
	
	
	/**
	 * 渠道的hbasekey
	 */
	private String attachHbaseKey;
	/**
	 * 创建时间(目前来看是模型被创建的时间，不一定是入库或者抓取任务开启的时间)
	 */
	
	private Date createTime = new Date();
	
	private Date grabDate;
	
	/**
	 * 抓取渠道名称
	 */
	private String grabChannelName;
	/**
	 * 运营商简称英文，如：MU
	 */
	private String carrierKey;

	/**
	 * 运营商简称中文，如：南航
	 */
	private String carrierName;

	/**
	 * 运营商全名，如：中国海南航空公司
	 */
	private String carrierFullName;
	/**
	 * 航班号，如： MU3540
	 */
	private String flightNo;

	/**
	 * 实际乘坐航班号，如 SC1234 实际乘坐CZ1234
	 */
	private String actuallyFlightNo;

	/**
	 * 飞机类型
	 */
	private String flightType;
	

	/**
	 * 航班起飞时间
	 */
	private Date startTime;

	/**
	 * 航班预计到达时间
	 */
	private Date endTime;
	/**
	 * 起飞城市三字码（是城市，不是机场三字码）
	 * 
	 */
	private String fromCity;
	/**
	 * 起飞城市名称
	 * 
	 */
	private String fromCityName;
	/**
	 * 目的城市三字码三字码
	 */
	private String toCity;
	/**
	 * 目的城市名称
	 */
	private String toCityName;


	/**
	 * 全程最低裸价（单程的全程最低价格，或者往返的来回打包最低价格）
	 */
	private Double totalLowestPrice;

	/**
	 * 全程最高裸价
	 */
	private Double totalHighestPrice;

	/**
	 * 全程最低裸价代理提供商名称
	 */
	private String agentName;
	
	/**
	 * 合计最低价格（裸价+税费）
	 */
	//@HBaseColumn(qualifier = "sumLowerPrice", family = "planeinfo")
	private Double sumLowestPrice; 
	/**
	 * 最低价税费
	 */
	//@HBaseColumn(qualifier = "totalLowestTaxesPrice", family = "planeinfo")
	private Double totalLowestTaxesPrice;

	/**
	 * 合计最高价（祼价+税费）
	 */
	//@HBaseColumn(qualifier = "sumHighestPrice", family = "planeinfo")
	private Double sumHighestPrice;
	/**
	 * 最高价税费
	 */
//	@HBaseColumn(qualifier = "totalHighestTaxesPrice", family = "planeinfo")
	private Double totalHighestTaxesPrice;
	
	
	
	
	//中转的实体set


	private List<Transit> transits = new ArrayList<Transit>();
	
	//仓位信息

	private List<Cabin> cabins = new ArrayList<Cabin>();

	
	
	//代理信息

	private List<Agent> agents = new ArrayList<Agent>();
	
	//经停信息

	private List<StopOver> stopOvers = new ArrayList<StopOver>();



	// public String getId() {
	// return id;
	// }
	//
	// public void setId(String id) {
	// this.id = id;
	// }

	public Integer getTrainsType() {
		return trainsType;
	}

	public void setTrainsType(Integer trainsType) {
		this.trainsType = trainsType;
	}

	public Integer getStopOversType() {
		return stopOversType;
	}

	public void setStopOversType(Integer stopOversType) {
		this.stopOversType = stopOversType;
	}


	public String getTrainsAirport() {
		return trainsAirport;
	}

	public void setTrainsAirport(String trainsAirport) {
		this.trainsAirport = trainsAirport;
	}

	public String getTrainTime() {
		return trainTime;
	}

	public void setTrainTime(String trainTime) {
		this.trainTime = trainTime;
	}



	public String getDepartureTime() {
		return departureTime;
	}

	public void setDepartureTime(String departureTime) {
		this.departureTime = departureTime;
	}

	public String getFlightDate() {
		return flightDate;
	}

	public void setFlightDate(String flightDate) {
		this.flightDate = flightDate;
	}

	public String getAttachHbaseKey() {
		return attachHbaseKey;
	}

	public void setAttachHbaseKey(String attachHbaseKey) {
		this.attachHbaseKey = attachHbaseKey;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getGrabDate() {
		return grabDate;
	}

	public void setGrabDate(Date grabDate) {
		this.grabDate = grabDate;
	}

	public String getGrabChannelName() {
		return grabChannelName;
	}

	public void setGrabChannelName(String grabChannelName) {
		this.grabChannelName = grabChannelName;
	}

	public String getCarrierKey() {
		return carrierKey;
	}

	public void setCarrierKey(String carrierKey) {
		this.carrierKey = carrierKey;
	}

	public String getCarrierName() {
		return carrierName;
	}

	public void setCarrierName(String carrierName) {
		this.carrierName = carrierName;
	}

	public String getCarrierFullName() {
		return carrierFullName;
	}

	public void setCarrierFullName(String carrierFullName) {
		this.carrierFullName = carrierFullName;
	}

	public String getFlightNo() {
		return flightNo;
	}

	public void setFlightNo(String flightNo) {
		this.flightNo = flightNo;
	}

	public String getActuallyFlightNo() {
		return actuallyFlightNo;
	}

	public void setActuallyFlightNo(String actuallyFlightNo) {
		this.actuallyFlightNo = actuallyFlightNo;
	}

	public String getFlightType() {
		return flightType;
	}

	public void setFlightType(String flightType) {
		this.flightType = flightType;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public String getFromCity() {
		return fromCity;
	}

	public void setFromCity(String fromCity) {
		this.fromCity = fromCity;
	}

	public String getFromCityName() {
		return fromCityName;
	}

	public void setFromCityName(String fromCityName) {
		this.fromCityName = fromCityName;
	}

	public String getToCity() {
		return toCity;
	}

	public void setToCity(String toCity) {
		this.toCity = toCity;
	}

	public String getToCityName() {
		return toCityName;
	}

	public void setToCityName(String toCityName) {
		this.toCityName = toCityName;
	}

	public Double getTotalLowestPrice() {
		return totalLowestPrice;
	}

	public void setTotalLowestPrice(Double totalLowestPrice) {
		this.totalLowestPrice = totalLowestPrice;
	}

	public Double getTotalHighestPrice() {
		return totalHighestPrice;
	}

	public void setTotalHighestPrice(Double totalHighestPrice) {
		this.totalHighestPrice = totalHighestPrice;
	}

	public String getAgentName() {
		return agentName;
	}

	public void setAgentName(String agentName) {
		this.agentName = agentName;
	}

	public Double getSumLowestPrice() {
		return sumLowestPrice;
	}

	public void setSumLowestPrice(Double sumLowestPrice) {
		this.sumLowestPrice = sumLowestPrice;
	}

	public Double getTotalLowestTaxesPrice() {
		return totalLowestTaxesPrice;
	}

	public void setTotalLowestTaxesPrice(Double totalLowestTaxesPrice) {
		this.totalLowestTaxesPrice = totalLowestTaxesPrice;
	}

	public Double getSumHighestPrice() {
		return sumHighestPrice;
	}

	public void setSumHighestPrice(Double sumHighestPrice) {
		this.sumHighestPrice = sumHighestPrice;
	}

	public Double getTotalHighestTaxesPrice() {
		return totalHighestTaxesPrice;
	}

	public void setTotalHighestTaxesPrice(Double totalHighestTaxesPrice) {
		this.totalHighestTaxesPrice = totalHighestTaxesPrice;
	}

	public List<Transit> getTransits() {
		return transits;
	}

	public void setTransits(List<Transit> transits) {
		this.transits = transits;
	}

	public List<Cabin> getCabins() {
		return cabins;
	}

	public void setCabins(List<Cabin> cabins) {
		this.cabins = cabins;
	}

	public List<Agent> getAgents() {
		return agents;
	}

	public void setAgents(List<Agent> agents) {
		this.agents = agents;
	}

	public List<StopOver> getStopOvers() {
		return stopOvers;
	}

	public void setStopOvers(List<StopOver> stopOvers) {
		this.stopOvers = stopOvers;
	}
	
	

	public Long getFlightDuration() {
		return flightDuration;
	}

	public void setFlightDuration(Long flightDuration) {
		this.flightDuration = flightDuration;
	}

	public String getSourceRowkey() {
		return sourceRowkey;
	}

	public void setSourceRowkey(String sourceRowkey) {
		this.sourceRowkey = sourceRowkey;
	}

	public String getAreaCode() {
		return areaCode;
	}

	public void setAreaCode(String areaCode) {
		this.areaCode = areaCode;
	}

	public String getAreaName() {
		return areaName;
	}

	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}
	
	

	public Long getGrabChannelId() {
		return grabChannelId;
	}

	public void setGrabChannelId(Long grabChannelId) {
		this.grabChannelId = grabChannelId;
	}
	
	

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}
	
	

	public String getRowkey() {
		return rowkey;
	}

	public void setRowkey(String rowkey) {
		this.rowkey = rowkey;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((attachHbaseKey == null) ? 0 : attachHbaseKey.hashCode());
		result = prime * result
				+ ((flightDate == null) ? 0 : flightDate.hashCode());
		result = prime * result
				+ ((flightNo == null) ? 0 : flightNo.hashCode());
		result = prime * result
				+ ((fromCity == null) ? 0 : fromCity.hashCode());
		result = prime * result + ((toCity == null) ? 0 : toCity.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		SinglePlaneInfo other = (SinglePlaneInfo) obj;
		if (attachHbaseKey == null) {
			if (other.attachHbaseKey != null)
				return false;
		} else if (!attachHbaseKey.equals(other.attachHbaseKey))
			return false;
		if (flightDate == null) {
			if (other.flightDate != null)
				return false;
		} else if (!flightDate.equals(other.flightDate))
			return false;
		if (flightNo == null) {
			if (other.flightNo != null)
				return false;
		} else if (!flightNo.equals(other.flightNo))
			return false;
		if (fromCity == null) {
			if (other.fromCity != null)
				return false;
		} else if (!fromCity.equals(other.fromCity))
			return false;
		if (toCity == null) {
			if (other.toCity != null)
				return false;
		} else if (!toCity.equals(other.toCity))
			return false;
		return true;
	}
	
	
	

	



	
}
